import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString } from 'class-validator';
export class CreateUserDto {
  /** 用户名 */
  @ApiProperty({
    description: '用户名',
    example: 'admin',
    type: 'string',
    required: true,
  })
  @IsNotEmpty({ message: '用户名必填' })
  @IsString()
  username: string;
  /** 用户昵称 */
  nickname: string;
  /** 用户密码，以hash+盐存储，确保安全性 */
  @ApiProperty({
    description: '用户密码',
    example: '21232f297a57a5a743894a0e4a801fc3',
    required: true,
  })
  @IsNotEmpty({ message: '用户密码必填' })
  password: string;
  /** 用户头像 */
  avatar: string;
  /** 唯一，用于找回密码、通知等 */
  email: string;
  /** 唯一，用于绑定和验证 */
  phone: string;
  /** 性别，枚举，MALE-男，FEMALE-女，UNKNOWN-未知 */
  gender: 'MALE' | 'FEMALE' | 'UNKNOWN';
  /** QQ，唯一标识openid */
  qqOpenid: string;
  /** 微博，唯一标识openid */
  weiboOpenid: string;
  /** 微信，唯一标识openid */
  weixinOpenid: string;
  /** 生日信息 */
  birthday: Date;
  /** 用户信息最后一次更新时间 */
  updatedAt: number;
  /** 用户创建时间 */
  createdAt: number;
  /** 上一次登录时间 */
  lastLoginAt: number;
  /** 帐号状态，NORMAL-正常，ABNORMAL-异常，LOCKED-已锁定，EXPIRED-已过期，DELETED-已删除，CANCELLED-已注销 */
  status:
    | 'NORMAL'
    | 'ABNORMAL'
    | 'LOCKED'
    | 'EXPIRED'
    | 'DELETED'
    | 'CANCELLED';
}
